Realmedia Stealth-Mulder Fix for Streambox VCR 1 Beta 31
 -Flying Raichu 3/18/01


-----------------------------------------------------------------------------
Well, i've been waiting for this to happen for a long time, but thought i'd
 wait and see if it was really going to become an issue.

When RealMedia player or Streambox vcr connect to a real server, one of the
 pieces of information they tell the server is the "User-Agent."

The User-Agent corresponds to the name of the client program which is
 connecting to the server.  Just like when you use a browser it tells the
 server whether it is Internet Explorer, Netscape, etc.

RealPlayer responds with something like "RealMedia Player Version ..."
 And Streambox VCR all the way back to x-filget responds with
 "Mulder, VCR-1.0".
 
Why streambox chose to identify themselves so clearly i'm not sure - perhaps
 because it seemed that REAL wouldn't care.
 
But anyway, it finally seems like REAL has added a check to their server
 software which will block the transfer if it sees a user-agent named
 "Mulder".
 
An alternative explanation might be that some servers are doing something
 fancy to customize the stream for the player and the Mulder thing is
 just screwing it up.  Don't know which is true.
 
Anyway, the fix is simply to modify Streambox VCR to pretend it is a
 RealPlayer.
-----------------------------------------------------------------------------


-----------------------------------------------------------------------------
Example stream where this happens:
 rtsp://live.wanadoo.be/wanadoo/hooverphonic/hooverphonic_clip_video.rm
 (this stream posted by dbj on the Streaming Media Recording Forum 3/18/01)

If you run a packet sniffer you will see that the RealPlayer has no problem,
 but that Streambox VCR receives a suspicious "Internal Server Error"
 when it tries to download.
-----------------------------------------------------------------------------


-----------------------------------------------------------------------------
The trivial way to fix this is just to go with a hex editor and change
 "Mulder, VCR-1.0" to say something else.  This will work.

BUT, there is not enough room to replace the string with something that
 a real RealPlayer client would send.

Here is what one RealyPlayer 8 Plus sends out as it's user agent
 "User-Agent: RealMedia Player Version 6.0.7.1423 (win32)"

Ideally, we would like to send out an id that won't set off any warning
 signs and that they can't block without blocking normal users.
-----------------------------------------------------------------------------


-----------------------------------------------------------------------------
Looking at dissasembled code in W32Dasm, we see the single reference to it:
 	* Possible StringData Ref from Data Obj ->"Mulder, VCR-1.0"
	                                  |
	:004577EA 68A8EE4E00              push 004EEEA8	      [file 0577EAh]
	
So, we are going to find some new memory location which has enough space,
 stick in the string "RealMedia Player Version 6.0.7.1423 (win32)", and
 then change the instruction above to point to the new memory location.
-----------------------------------------------------------------------------


-----------------------------------------------------------------------------
Looking just a little bit above the "Mulder" reference we see:
 "Unknown RTSP command received, please contact beta@streambox.com for support"
Since we know that streambox support is gone, we modify this.

CHANGE:
 "Unknown RTSP command received, please contact beta@streambox.com for support"
TO:
 "Unknown RTSP command; oh well..RealMedia Player Version 6.0.7.1423 (win32).."

And then CHANGE:
	:004577EA 68A8EE4E00              push 004EEEA8       [file 0577EAh]
TO:
	:004577EA 684FEE4E00              push 004EEE4F

Actually, i have RealPlayer Plus 8 which is probably much less common than
 the free normal version 8, so if someone can packet sniff their free version
 and send me the Version id that it sends, i'll use that one instead.
-----------------------------------------------------------------------------


-----------------------------------------------------------------------------
Lastly, we should fix the about box so people can verify that their version
 of streambox vcr is updated with the Realmedia Stealth-Mulder Fix.

CHANGE:
 "StreamBox VCR 1.0 Beta 3"
TO
 "StreamBox VCR 1b31 - SMF"
And CHANGE:
 "S.t.r.e.a.m.B.o.x. .V.C.R. .V.e.r.s.i.o.n. .1...0. .B.e.t.a. .3"
TO
 "S.t.r.e.a.m.B.o.x. .V.C.R. .1. .b.e.t.a. .3.1. .-. .S.M.F. . . "
-----------------------------------------------------------------------------

